﻿using System;

namespace Entities
{
    [Serializable]
    public class tblAccount
    {
        private string username;
        private string password;
        private string email;
        private string first_name;
        private string last_name;
        private string phone;
        private int user_group_id;
        private bool status;

        public tblAccount() {}

        public tblAccount(string username, string password, string email, string first_name, string last_name, string phone, int user_group_id, bool status)
        {
            this.username = username;
            this.password = password;
            this.email = email;
            this.first_name = first_name;
            this.last_name = last_name;
            this.phone = phone;
            this.user_group_id = user_group_id;
            this.status = status;
        }

        public string userName
        {
            get { return this.username; }
            set
            {
                if (value == null)
                    throw new Exception("Tên tài khoản không được để trống!");
                this.userName = value;
            }
        }

        public string passWord
        {
            get { return this.password; }
            set
            {
                if (value == null)
                    throw new Exception("Mật khẩu không được để trống!");
                this.password = value;
            }
        }

        public string Email
        {
            get { return this.email; }
            set
            {
                if (value == null)
                    throw new Exception("Email không được để trống!");
                this.email = value;
            }
        }

        public string firstName
        {
            get { return this.first_name; }
            set
            {
                this.first_name = value;
            }
        }

        public string lastName
        {
            get { return this.last_name; }
            set
            {
                this.last_name = value;
            }
        }

        public string Phone
        {
            get { return this.phone; }
            set
            {
                this.phone = value;
            }
        }

        public int userGroupID
        {
            get { return this.user_group_id; }
            set
            {
                if (value == null)
                    throw new Exception("Nhóm tài khoản không được để trống!");
                this.user_group_id = value;
            }
        }

        public bool Status
        {
            get { return this.status; }
            set
            {
                if (value == null)
                    throw new Exception("Trạng thái tài khoản không được để trống!");
                this.status = value;
            }
        }

        public override string ToString()
        {
	        return this.username+"; "+this.password+"; "+this.email+"; "+this.first_name+"; "+this.last_name+"; "+this.phone+"; "+this.user_group_id+"; "+this.status+"; ";
	    }
	    public override bool Equals(Object obj)
	    {
	        tblAccount me = (tblAccount)obj;
	        bool ret=this.userName.Equals(me.userName);
	        return ret;
	    }
	    public override int GetHashCode()
	    {
	        return this.userName.GetHashCode();
	    }

    }
}
